﻿using System;
using Obj;
using DAL;
using System.Collections.Generic;

namespace BLL
{
    /// <summary>
    /// Summary description for BLLModelo
    /// </summary>
    public class BLLModelo
    {
        public int Save(objModelo modelo, action acao)
        {
            int ret = 0;

            switch (acao)
            {
                case action.INSERT:
                    ret = Insert(modelo);
                    break;
                case action.UPDATE:
                    ret = Update(modelo);
                    break;
                case action.DELETE:
                    ret = Delete(modelo);
                    break;
                default:
                    throw new Exception("Operação Inválida");
            }

            return ret;

        }

        private int Insert(objModelo modelo)
        {
            int ret = 0;
            if (int.Parse(modelo.ModeloID.ToString()) != 0)
                throw new Exception("Codigo do modelo Inválido");

            SQLModelo sqlModelo = new SQLModelo();
            ret = sqlModelo.Insert(modelo);
            return ret;

        }

        private int Update(objModelo modelo)
        {
            if (int.Parse(modelo.ModeloID.ToString()) <= 0)
                throw new Exception("Codigo do modelo Inválido");

            SQLModelo sqlModelo = new SQLModelo();
            if (sqlModelo.Update(modelo))
                return 1;
            else
                return 0;
        }

        private int Delete(objModelo modelo)
        {
            if (int.Parse(modelo.ModeloID.ToString()) <= 0)
                throw new Exception("Codigo do modelo Inválido");


            SQLModelo sqlmodelo = new SQLModelo();


            if (sqlmodelo.Delete(modelo.ModeloID))
                return 1;
            else
                return 0;
        }

        public objModelo modelo(objModelo modelo)
        {
            SQLModelo sqlModelo = new SQLModelo();
            return sqlModelo.SelectByID(modelo.ModeloID);
        }

        public List<objModelo> lstModeloByMarca(int marcaID)
        {
            SQLModelo sqlModelo = new SQLModelo();
            return sqlModelo.SelectByMarca(marcaID);
        }

        public List<objModelo> lstModelo()
        {
            SQLModelo sqlModelo = new SQLModelo();
            return sqlModelo.SelectAll();
        }

        public List<objModelo> lstModelo(objModelo modelo)
        {
            SQLModelo sqlModelo = new SQLModelo();
            return sqlModelo.SelectAll(modelo.Descricao);
        }


    }
}